package br.com.guiaturistico;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.Gallery;
import android.widget.GridView;
import br.com.guiaturistico.adapter.GaleriaCidadeAdapter;
import br.com.guiaturistico.adapter.HomeAdapter;
import br.com.guiaturistico.beans.GaleriaHomeBean;
import br.com.guiaturistico.beans.HomeBean;
import br.com.guiaturistico.ui.ShakeDetector;
import br.com.guiaturistico.ui.ShakeDetector.OnShakeListener;

public class HomeActivity extends Activity{

    private ShakeDetector mShakeDetector;
    private SensorManager mSensorManager;
    private Sensor mAccelerometer;
    private Context context = this;

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	
		setContentView(R.layout.home_layout);
	
		 // ShakeDetector initialization
        mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        mShakeDetector = new ShakeDetector(new OnShakeListener() {
            @Override
            public void onShake() {
            	
            	finish();
            	startActivity(new Intent(context,HomeNewActivity.class));
            }
        });
		
        mSensorManager.registerListener(mShakeDetector, mAccelerometer, SensorManager.SENSOR_DELAY_UI);
        
		
		
		
		//Os dois vetores devem ter o mesmo tamanho
		String[] labelMenuVetor = getResources().getStringArray(R.array.label_opcoes_home);
		TypedArray imagemMenuVetor = getResources().obtainTypedArray(R.array.imagem_opcoes_home);
		
		List<HomeBean> listaMenu = new ArrayList<HomeBean>();
		
		for(int i=0;i<labelMenuVetor.length;i++){
			
			HomeBean menu = new HomeBean();
			
			menu.setLabel(labelMenuVetor[i]);
			menu.setImagem(getResources().getDrawable(imagemMenuVetor.getResourceId(i, 0)));
			
			listaMenu.add(menu);
		}
		
		
		HomeAdapter adaptadorMenu = new HomeAdapter(this,this, listaMenu);
		
		GridView homeMenu = (GridView) findViewById(R.id.homeMenu);
		homeMenu.setAdapter(adaptadorMenu);
	
		
		
		//Esses vetores devem ter obrigatoriamente a mesma quantidade de elementos
		TypedArray galeriaHomeImagemVetor = getResources().obtainTypedArray(R.array.galeria_home);
		String[] galeriaHomeDescVetor = getResources().getStringArray(R.array.descricao_galeria_home);
		
		Gallery galeriaHome = (Gallery) findViewById(R.id.galeriaHome);
		
		
		Drawable[] listaImagens = new Drawable[galeriaHomeImagemVetor.length()]; 
		List<GaleriaHomeBean> listaGaleriaHome = new ArrayList<GaleriaHomeBean>();
		
		for(int i=0;i<galeriaHomeImagemVetor.length();i++){
			
			GaleriaHomeBean objetoGaleriaHome = new GaleriaHomeBean();
		
			objetoGaleriaHome.setImagemGaleria(getResources().getDrawable(galeriaHomeImagemVetor.getResourceId(i, 0)));
			objetoGaleriaHome.setDescricaoGaleria(galeriaHomeDescVetor[i]);
			
			
			listaGaleriaHome.add(objetoGaleriaHome);
		}
		
		
		GaleriaCidadeAdapter galeriaCidadeAdapter = new GaleriaCidadeAdapter(this, listaGaleriaHome);
			
		
		galeriaHome.setAdapter(galeriaCidadeAdapter);

	}
}
